import 'package:flutter/gestures.dart';
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';

//静态路由配置
void main() => runApp(const MyApp3());

//定义根目录Widget
class MyApp3 extends StatelessWidget {
  const MyApp3({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      localizationsDelegates: const [
        //初始化默认的 Material 组件本地化
        GlobalMaterialLocalizations.delegate,
        //初始化默认的 通用 Widget 组件本地化
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
      ],
      //当前区域，如果为null则使用系统区域一般用于语言切换
      //传入两个参数，语言代码，国家代码
      //这里配制为中国
      locale: const Locale('zh', 'CN'),
      //定义当前应用程序所支持的语言环境
      supportedLocales: const [
        Locale('en', 'US'), // English 英文
        Locale('zh', 'CN'), // 中文
      ],
      routes: {
        //默认页面
        "/": (BuildContext context) => const Exam213HomePage(),
      },
    );
  }
}


class Exam213HomePage extends StatefulWidget {
  const Exam213HomePage({Key? key}) : super(key: key);

  @override
  State<Exam213HomePage> createState() => _Exam213HomePageState();
}

class _Exam213HomePageState extends State<Exam213HomePage> {

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      //页面的头部
      appBar: AppBar(title: const Text("标题")),
      //页面的主内容区
      body: Center(child: buildRichText()),
    );
  }
  ///代码清单2-18 RichText 文本的基本使用
  ///代码路径 lib/code2/code213_RichText.dart
  Widget buildRichText() {
    return RichText(
      //文字区域
      text: TextSpan(
        text: "登录即代表同意",
        style: const TextStyle(color: Colors.grey),
        children: [
          //文本
          TextSpan(
              text: "《用户注册协议》",
              style: const TextStyle(color: Colors.blue),
              //点击事件
              recognizer: TapGestureRecognizer()
                ..onTap = () {
                  print("点击用户协议");
                }),
          //文本
          const TextSpan(
            text: "与",
            style: TextStyle(color: Colors.grey),
          ),
          //其他Widget 这里使用的是图片 Image
          WidgetSpan(
            //对齐方式
            alignment: PlaceholderAlignment.middle,
            //这里就是中间显示的图片了也可以是其他任意的 Widget
            child: Image.asset(
              "assets/images/warning_icon.png",
              width: 20,
              height: 20,
            ),
          ),
        ],
      ),
    );
  }
}
